package com.betterjr.modules.application.dubbo;

import java.util.Map;

import org.springframework.beans.factory.annotation.Autowired;

import com.alibaba.dubbo.config.annotation.Service;
import com.betterjr.common.web.AjaxObject;
import com.betterjr.modules.application.IApplicationGroupService;
import com.betterjr.modules.application.entity.ApplicationGroup;
import com.betterjr.modules.application.service.ApplicationGroupService;
import com.betterjr.modules.rule.service.RuleServiceDubboFilterInvoker;

@Service(interfaceClass = IApplicationGroupService.class)
public class ApplicationGroupDubboService implements IApplicationGroupService {

    @Autowired
    private ApplicationGroupService groupService;

    /**
     * 
      * @Title: saveOrUpdateApplicationGroup 
     * @Description: 新增或者修改应用分组 
     * @param anMap
     * @return 
     * @see com.betterjr.modules.application.IApplicationGroupService#webSaveOrUpdateApplicationGroup(java.util.Map) 
     * @author xuyp
     * @date 2017年11月15日 下午4:46:13
     * 
     * ID  
     * applicationGroupName
     */
    @Override
    public String webSaveOrUpdateApplicationGroup(Map<String, Object> anMap) {

        ApplicationGroup group = RuleServiceDubboFilterInvoker.getInputObj();
        return AjaxObject.newOk("操作成功", groupService.saveOrUpdateApplicationGroup(group)).toJson();
    }

    /**
     * 删除应用分组
     * <p>Overriding Method of webSaveDeleteApplicationGroup</p>  
     * <p>Description: </p> 
     * @param anId
     * @return 
     * @see com.betterjr.modules.application.IApplicationGroupService#webSaveDeleteApplicationGroup(java.lang.Long) 
     * @author xuyp
     * @date 2017年12月5日 下午4:42:40
     */
    @Override
    public String webSaveDeleteApplicationGroup(Long anId) {

        return AjaxObject.newOk("操作成功", groupService.saveDeleteApplicationGroup(anId)).toJson();
    }

    /**
     * 
     * @Title: findApplicationGroupDetail 
     * @Description: 查询单条分组应用的详细信息
     * @param anGroupId
     * @param anCount 是否查询应用数量 1 查询     2 不查询
     * @param anApplicaitonList   是否查询应用集合  1 查询  2 不查询
     * @param anBusinStatus   应用机构的状态状态 1未生效 2已生效 9已失效
     * @return 
     * @see com.betterjr.modules.application.IApplicationGroupService#webFindApplicationGroupDetail(java.lang.Long, java.lang.String, java.lang.String) 
     * @author xuyp
     * @date 2017年11月15日 下午4:46:42
     */
    @Override
    public String webFindApplicationGroupDetail(Long anGroupId, String anCount, String anApplicaitonList,
            String anBusinStatus) {

        return AjaxObject
                .newOk("查询成功",
                        groupService.findApplicationGroupDetail(anGroupId, anCount, anApplicaitonList, anBusinStatus))
                .toJson();
    }

    /**
     * 
     * @Title: queryApplicationGroupList 
     * @Description: 根据分组查询所有的应用 
     * @param anCount 是否查询应用数量 1 查询     2 不查询
     * @param anApplicaitonList   是否查询应用集合  1 查询  2 不查询
     * @param anBusinStatus   状态应用中间表中的状态状态 1未生效 2已生效 9已失效
     * @return 
     * @see com.betterjr.modules.application.IApplicationGroupService#webQueryApplicationGroupList(java.lang.String, java.lang.String) 
     * @author xuyp
     * @date 2017年11月15日 下午4:47:15
     */
    @Override
    public String webQueryApplicationGroupList(String anCount, String anApplicaitonList, String anBusinStatus) {

        return AjaxObject
                .newOk("查询成功", groupService.queryApplicationGroupList(anCount, anApplicaitonList, anBusinStatus))
                .toJson();
    }

}
